<template>
<v-container>
  <h1>Jpql</h1>
  <ul>
    <li><a href="https://jakarta.ee/learn/docs/jakartaee-tutorial/current/persist/persistence-querylanguage/persistence-querylanguage.html" target="_blank">jee jpql</a></li>
    <li><a
      href="https://docs.jboss.org/hibernate/orm/6.4/userguide/html_single/Hibernate_User_Guide.html#query-language" target="_blank">hibernate jpql</a></li>
  </ul>

  <hr>

  <p>Jpql 特殊像 sql , 但时刻要记着，jpql 中的内容都是对应 java 代码中的 Entity 的， 通过 <strong><code>.</code></strong> 访问的属性，都是Entity 的属性，
    然后再考虑转换成什么样的 sql </p>

  <p>第一个重点部分是 Select 语句中的几种写法， Select 写法不同，会导致生成的sql 查询的字段不一样， 也会影响到是否查询关联表， 同时会决定查询后的返回值类型</p>
  <p>第二个重点部分是 Join 语法， 如果Entity中已经设置了关联对象之间的关系，那么这Join 语法部分可以将 on 省略掉， 并且可以通过 fetch 关键字控制中同急性加载关联对象， 如果使用 on ,
    那么关联对象上的关联关系就没有用了， 需要自己指定， fetch 关键字也没有作用了。</p>
  <p>总体上来说， jpq (hibernate 环境下) 框架最大努力优化了查询效率，但由于是针对对象设计的，总不能像自己写sql 那样极限优化sql , 面向对象的设计不会一直与业务逻辑完美契合</p>
  <h4>note: JPQL.md</h4>
  <h2>涉及到的方法</h2>
  <p>com.zoro.dyformservice.jpql.JpqlJoinTests</p>
  <p>com.zoro.dyformservice.jpql.JpqlSelectTests</p>
</v-container>
</template>
<script setup lang="ts">

</script>
<style scoped>

</style>
